The files used to initialize settings for a computer, computer program, and/or computer network for individual users are referred to as initialization files. Different computer programs read from these initialization files to determine the configuration of the computer, computer program and/or computer network for the individual user. It is a common practice to keep these initialization files in a simple text format as opposed to a proprietary format. Keeping these files in a simple text format has plenty of advantages. This brings forth simplicity in structure. This also implies that these initialization files can be read and edited by any text editor as opposed to having a proprietary tool that understands the format of these files to let any file operation possible on these initialization files by the user. It is also very easy to read and write to an initialization file: as different library functions exist in a variety of languages and scripts to read and write to a text file. Examples of these initialization files in text format are plenty. In UNIX (trademarked) environments, a profile text file initializes the environment for a user at login time. A similar task used to be done in DOS through a config.sys file. Microsoft Windows (trademarked) 3.X, Windows (trademarked) 9X, Microsoft Windows NT (trademarked), Microsoft Windows 2000 (trademarked) and Microsoft Windows XP (trademarked) use a variety of initialization files.
These initialization files can be broadly categorized into two types of files i.e. information files which have a it extension in their names (known in the art as inf files) and initialization files which have a .ini extension in their names (known in the art as ini files).
The structure of these initialization files—ini files and inf files are similar to each other and are comprised of a pair of ini entry and value, which are separated by an equal sign and divided into different sections. The sections are identified by section header which is a text string enclosed between square brackets. By using text based tags to identify sections, entry and values, ini and inf files preserve the text based nature of the file and at the same time bring an order to a text file to make it more structured to store settings.
Typically an inf file can be used to store computer hardware configuration data or information for a device. Ini files are used to hold computer software configuration data or information.
Ini and Inf files have the advantage of simplicity of structure associated with any text file. In addition to this advantage, by using the above-described format of dividing the file into sections, different settings can be bundled into different groups (identified by sections in ini and inf files). This gives users of the ini and inf files a little bit more flexibility compared to any other text file in terms of managing the data that is to be stored. One more advantage of files in ini and inf format is that there are tools available to read and write easily to these files (ini and inf files), such as “GenInf.exe” from Microsoft (trademarked) and “ChkInf.exe” from Microsoft (trademarked).
Looking at the structure of these ini and inf files in more detail, an ini or an inf file is divided into sections, which are identified by a section name typically called “IniSectionName”. Each section is comprised of a number of entries (each typically called “IniEntry,”) and their respective values (each typically called “IniEntryValue”). Therefore the IniEntryValue for a combination of IniSectionName and IniEntry defines a value (IniEntryValue) that a user will be initialized to for a given setting(IniSectionName and IniEntry). Logically, this implies that a sequence of three strings (IniSectionName, IniEntry, IniEntryValue) can define the configuration for a user. This setting can be a particular software setting or user environment in that computer system or in the organizational network
The computer software settings or configuration that the initialization files in text format intend to deploy can be for all the users, for a group of users or an individual user of a computer or computer network. In the real world, configurations are deployed at an organization level where users are divided into different groups and subgroups where any single user can derive certain properties from the group or sub group to which he or she belongs to or have certain set of his or her own unique attributes. It would be very advantageous to use the text based initialization files in this scenario due to their advantages already listed above.
However, due to its simplicity of structure, these initialization files in text format in their current form are not well suited to initializing and modifying the configuration of a complex set of users divided into different groups and subgroups where any single user can derive certain properties from the group or sub group to which he or she belongs to or have certain set of his or her own unique attributes.